package com.comac.tasks.manager.app.domain.gateway;


import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse;
import com.comac.tasks.manager.app.dto.*;

/**
 * @author wfb
 * @date 2021年12月15日17:54:38
 */
public interface TasksManagerGateway {
    /**
     * 创建代办信息
     *
     * @param dto
     */
    Response insert(TasksManagerDTO dto);

    /**
     * 批量创建代办信息
     *
     * @param batchInsertDTO
     */
    Response batchInsert(TasksManagerBatchInsertDTO batchInsertDTO) throws Exception;

    Response batchInsertPerformance(TasksManagerBatchInsertDTO batchInsertDTO) throws Exception;

    /**
     * 根据id更新代办状态
     *
     * @param
     */
    Response update(TasksManagerUpOperatorDTO dto);

    /**
     * 根据id更新 应完时间
     *
     * @param dto
     * @return
     */
    Response updateECTime(TasksManagerUpECTimeDTO dto);

    /**
     * 根据id更新代办状态
     *
     * @param tasksManagerUpDTO
     */
    Response updateStatus(TasksManagerUpDTO tasksManagerUpDTO) throws Exception;


    /**
     * 根据流程模板编码和节点编码更新 待办类型
     *
     * @param dto
     * @return
     */
    Response updateTaskType(TasksManagerUpTaskTypeDTO dto);

    /**
     * 分页查询代办信息
     *
     * @param qry
     * @return
     */
    PageResponse selectPage(TasksManagerQry qry);

    /**
     * 分页查询代办信息
     *
     * @param qry
     * @return
     */
    PageResponse selectPageByCreator(TasksManagerQry qry);

    /**
     * 分页查询代办详情
     *
     * @param detailsQry
     * @return
     */
    SingleResponse<TasksManagerVO> selectDetailsById(TasksManagerDetailsQry detailsQry);

    /**
     * 分页查询代办详情
     *
     * @param
     * @return
     */
    Response delete(TasksManagerDelDTO tasksManagerDelDTO);

}
